#pragma once
#include "util/Notify.h"

#ifdef _WIN32
#define UIHAND HWND
#endif
class GuiObject
{
public:
	enum{
		ON_CLICK,
		ON_CREATE,
		ON_DESTROY
	};
	
protected:
	GuiObject(void);
public:
	virtual ~GuiObject(void);
protected:
public:
	virtual void AddOnCreateCallback(Notify::NotifyCallback onCreate);
	virtual void AddOnDestroyCallback(Notify::NotifyCallback onDestroy);
public:
	virtual UIHAND GetUIHand()  = 0;
	virtual void SetUIHand(UIHAND uiHand) = 0;
	virtual void SetParent(UIHAND parent) = 0;
	virtual void AddChild(GuiObject& child) = 0;
};
